<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
//Ultima verificacion: 06-03-2015
class Asistencia extends CI_Controller {
	//Metodo constructor de la clase
	function __construct(){
		parent::__construct();
	}
	
	//Este metodo no se puede llamar con ajax
	//Muestra un listado con todas las tomas de asistencia activas pero NO las borradas (-1) segun los filtros aplicados
	//Filtros:
	//Los tres primeros filtros sirven para seleccionar mas facilmente la division a ver las tomas de asistencia
	function consultar($idCicloLectivo=null, $idTurno=null, $idCurso=null, $idDivision=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idCicloLectivo pasado sea numerico y mayor o igual que cero. Lo mismo para el turno, el curso y la division
			if(is_numeric($idCicloLectivo) && $idCicloLectivo>=0 && is_numeric($idTurno) && $idTurno>=0 && is_numeric($idCurso) && $idCurso>=0 && is_numeric($idDivision) && $idDivision>=0){
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo para comprobar que existe
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Cargo el modelo donde estan los datos de los turnos
				$this->load->model('m_turno');
				
				//Busco al turno para comprobar que existe
				$turno = $this->m_turno->get($idTurno);
				
				//Cargo el modelo donde estan los datos de los cursos
				$this->load->model('m_curso');
				
				//Busco al curso para comprobar que existe
				$curso = $this->m_curso->get($idCurso);
				
				//Cargo el modelo donde estan los datos de las divisiones
				$this->load->model('m_division');
				
				//Busco a la division para comprobar que existe
				$division = $this->m_division->get($idDivision);
				
				//Tercera comprobacion: Que el ciclo lectivo pasado por la url sea existente o bien el id sea igual a cero. Lo mismo para el turno, curso y division
				if(($cicloLectivo->num_rows() == 1 || $idCicloLectivo==0) && ($turno->num_rows() == 1 || $idTurno==0) && ($curso->num_rows() == 1 || $idCurso==0) && ($division->num_rows() == 1 || $idDivision==0)){
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los turnos activos
					$listadoTurnos = $this->m_turno->buscarActivos();
					
					//Le paso el listado de todos los turnos a la vista para que los muestre en un combo de filtrado
					$datos['turnos'] = $listadoTurnos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los ciclos lectivos
					$listadoCiclosLectivos = $this->m_ciclo_lectivo->buscar();
					
					//Le paso el listado de todos los ciclos lectivos a la vista para que los muestre en un combo de filtrado
					$datos['ciclosLectivos'] = $listadoCiclosLectivos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Si el ciclo lectivo pasado por la url es igual a cero entonces hay que seleccionar el ciclo vigente, en caso contrario el que haya sido pasado
					if($idCicloLectivo==0){
						//Busco el ciclo lectivo vigente
						$cicloLectivoVigente = $this->m_ciclo_lectivo->getVigente();
						
						if($cicloLectivoVigente->num_rows() == 1){
							//Le paso a la vista el id del ciclo lectivo vigente
							$datos['idCicloLectivoSel'] = $cicloLectivoVigente->row()->idCicloLectivo;
						}else{
							//No hay ciclo lectivo seleccionado ni vigente
							$datos['idCicloLectivoSel'] = 0;
						}
					}else{
						//Le paso a la vista el id del ciclo lectivo pasado por la url
						$datos['idCicloLectivoSel'] = $idCicloLectivo;
					}
					
					//Le paso a la vista el id del turno
					$datos['idTurnoSel'] = $idTurno;
					
					//Le paso a la vista el id del curso
					$datos['idCursoSel'] = $idCurso;
					
					//Le paso a la vista el id de la division
					$datos['idDivisionSel'] = $idDivision;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Restricciones a los cursos, divisiones y tomas de asistencia
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					$restriccion1 = "";
					$restriccion2 = "";
					$restriccion3 = "";
					if($idCicloLectivo==0){
						//Busco el ciclo lectivo vigente
						$cicloLectivoVigente = $this->m_ciclo_lectivo->getVigente();
						
						if($cicloLectivoVigente->num_rows() == 1){
							$restriccion1 = " AND curso.idCicloLectivo=".$cicloLectivoVigente->row()->idCicloLectivo;
						}else{
							$restriccion1 = " AND curso.idCicloLectivo=0";
						}
					}else{
						$restriccion1 = " AND curso.idCicloLectivo=".$idCicloLectivo;					
					}
					
					if($idTurno!=0){
						$restriccion1 .= " AND curso.idTurno=".$idTurno;
					}
					
					$restriccion2 = " AND division.idCurso=".$idCurso;
					$restriccion3 = " AND asistencia.idDivision=".$idDivision;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los cursos registrados para pedirle un listado con todos ellos
					$this->load->model('m_curso');
					
					//Busco todos los cursos activos segun las restricciones
					$listadoCursos = $this->m_curso->buscarActivos($restriccion1);
					
					//Le paso el listado de todos los cursos a la vista para que los muestre en un combo de filtrado
					$datos['cursos'] = $listadoCursos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de las divisiones registradas para pedirle un listado con todas ellas
					$this->load->model('m_division');
					
					//Busco todas las divisiones activas segun las restricciones
					$listadoDivisiones = $this->m_division->buscarActivos($restriccion1 . $restriccion2);
					
					//Le paso el listado de todas las divisiones a la vista para que los muestre en un combo de filtrado
					$datos['divisiones'] = $listadoDivisiones;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de las tomas de asistencia registradas para pedirle un listado con todas ellas
					$this->load->model('m_asistencia');
					
					//Busco todas las asistencias segun las restricciones
					$listadoAsistencias = $this->m_asistencia->buscarActivos($restriccion3);
					
					//Le paso el listado de todas las asistencias a la vista para que las muestre en una tabla
					$datos['asistencias'] = $listadoAsistencias;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo la vista donde se muestra la tabla de asistencias y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_asistencias', $datos, true);
					
					//Cargo la vista principal con los datos de la vista consultar asistencias
					$this->load->view('v_sistema', $datosPrincipal);
				} else {
					//El o los registros no existen.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para consultar los registros.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Este metodo solo se puede llamar con ajax
	//Sirve para eliminar la toma de asistencia pasada por la url
	//El segundo, tercer, cuarto y quinto parametro indican los parametros para filtrar las asistencia en el resultado
	function eliminar($idAsistencia=null, $idCicloLectivo=null, $idTurno=null, $idCurso=null, $idDivision=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idAsistencia pasado sea numerico y mayor que cero. Ademas que idCicloLectivo pasado sea numerico y mayor o igual que cero. Lo mismo para el idTurno e idCurso. idDivision debe ser mayor que cero.
			if(is_numeric($idAsistencia) && $idAsistencia>0 && is_numeric($idCicloLectivo) && $idCicloLectivo>=0 && is_numeric($idTurno) && $idTurno>=0 && is_numeric($idCurso) && $idCurso>=0 && is_numeric($idDivision) && $idDivision>0){
				//Cargo el modelo donde estan los datos de las asistencias registradas
				$this->load->model('m_asistencia');
				
				//Busco a la asistencia que hay que eliminar
				$asistencia = $this->m_asistencia->get($idAsistencia);
				
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo para comprobar que existe
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Cargo el modelo donde estan los datos de los turnos
				$this->load->model('m_turno');
				
				//Busco al turno para comprobar que existe
				$turno = $this->m_turno->get($idTurno);
				
				//Cargo el modelo donde estan los datos de los cursos registrados
				$this->load->model('m_curso');
				
				//Busco al curso para comprobar que existe
				$curso = $this->m_curso->get($idCurso);
				
				//Cargo el modelo donde estan los datos de las divisiones registradas
				$this->load->model('m_division');
				
				//Busco a la division para comprobar que existe
				$division = $this->m_division->get($idDivision);
				
				//Tercera comprobacion: Que la asistencia sea existente. Ademas que el ciclo lectivo pasado por la url sea existente, o bien el ciclo lectivo sea cero. Lo mismo para el turno y curso. La division debe ser existente.
				if($asistencia->num_rows() == 1 && ($cicloLectivo->num_rows() == 1 || $idCicloLectivo==0) && ($turno->num_rows() == 1 || $idTurno==0) && ($curso->num_rows() == 1 || $idCurso==0) && $division->num_rows() == 1){
					//Elimino a la asistencia pasada por la url
					$respuesta = $this->m_asistencia->eliminar($idAsistencia, $this->session->userdata('idUsuarioLog'));
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los turnos activos
					$listadoTurnos = $this->m_turno->buscarActivos();
					
					//Le paso el listado de todos los turnos a la vista para que los muestre en un combo de filtrado
					$datos['turnos'] = $listadoTurnos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los ciclos lectivos
					$listadoCiclosLectivos = $this->m_ciclo_lectivo->buscar();
					
					//Le paso el listado de todos los ciclos lectivos a la vista para que los muestre en un combo de filtrado
					$datos['ciclosLectivos'] = $listadoCiclosLectivos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Si el ciclo lectivo pasado por la url es igual a cero entonces hay que seleccionar el ciclo vigente, en caso contrario el que haya sido pasado
					if($idCicloLectivo==0){
						//Busco el ciclo lectivo vigente
						$cicloLectivoVigente = $this->m_ciclo_lectivo->getVigente();
						
						if($cicloLectivoVigente->num_rows() == 1){
							//Le paso a la vista el id del ciclo lectivo vigente
							$datos['idCicloLectivoSel'] = $cicloLectivoVigente->row()->idCicloLectivo;
						}else{
							//No hay ciclo lectivo seleccionado ni vigente
							$datos['idCicloLectivoSel'] = 0;
						}
					}else{
						//Le paso a la vista el id del ciclo lectivo pasado por la url
						$datos['idCicloLectivoSel'] = $idCicloLectivo;
					}
					
					//Le paso a la vista el id del turno
					$datos['idTurnoSel'] = $idTurno;
					
					//Le paso a la vista el id del curso
					$datos['idCursoSel'] = $idCurso;
					
					//Le paso a la vista el id de la division
					$datos['idDivisionSel'] = $idDivision;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Restricciones a los cursos, divisiones y tomas de asistencia
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					$restriccion1 = "";
					$restriccion2 = "";
					$restriccion3 = "";
					if($idCicloLectivo==0){
						//Busco el ciclo lectivo vigente
						$cicloLectivoVigente = $this->m_ciclo_lectivo->getVigente();
						
						if($cicloLectivoVigente->num_rows() == 1){
							$restriccion1 = " AND curso.idCicloLectivo=".$cicloLectivoVigente->row()->idCicloLectivo;
						}else{
							$restriccion1 = " AND curso.idCicloLectivo=0";
						}
					}else{
						$restriccion1 = " AND curso.idCicloLectivo=".$idCicloLectivo;					
					}
					
					if($idTurno!=0){
						$restriccion1 .= " AND curso.idTurno=".$idTurno;
					}
					
					$restriccion2 = " AND division.idCurso=".$idCurso;
					$restriccion3 = " AND asistencia.idDivision=".$idDivision;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los cursos registrados para pedirle un listado con todos ellos
					$this->load->model('m_curso');
					
					//Busco todos los cursos activos segun las restricciones
					$listadoCursos = $this->m_curso->buscarActivos($restriccion1);
					
					//Le paso el listado de todos los cursos a la vista para que los muestre en un combo de filtrado
					$datos['cursos'] = $listadoCursos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de las divisiones registradas para pedirle un listado con todas ellas
					$this->load->model('m_division');
					
					//Busco todas las divisiones activas segun las restricciones
					$listadoDivisiones = $this->m_division->buscarActivos($restriccion1 . $restriccion2);
					
					//Le paso el listado de todas las divisiones a la vista para que los muestre en un combo de filtrado
					$datos['divisiones'] = $listadoDivisiones;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de las tomas de asistencias registradas para pedirle un listado con todas ellas
					$this->load->model('m_asistencia');
					
					//Busco todas las asistencias segun las restricciones (que quedaron)
					$listadoAsistencias = $this->m_asistencia->buscarActivos($restriccion3);
					
					//Le paso el listado de todas las asistencias a la vista para que los muestre en una tabla
					$datos['asistencias'] = $listadoAsistencias;
					
					//Cargo la vista donde se muestra la tabla de asistencias
					$this->load->view('v_asistencias', $datos);
				} else {
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					echo("No existe el registro seleccionado para borrar.");
				}
			} else {
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				echo("No se ha pasado los parametros necesarios para borrar un registro.");
			}			
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			echo("No tiene permiso para borrar un registro.");
		}
	}
	
	//EN ESTE CONTROLADOR NO EXISTE LA PANTALLA CREAR NI EL METODO CREAR YA QUE SE CREAN AL TOMAR LA ASISTENCIA
			
	//Esto metodo no se puede llamar con ajax
	//Este metodo abre la pantalla con los datos de la toma de asistencia pasada por la url
	function abrirPantallaModificar($idAsistencia=null, $idCicloLectivo=null, $idTurno=null, $idCurso=null, $idDivision=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idAsistencia pasado sea numerico y mayor que cero. Ademas que idCicloLectivo pasado sea numerico y mayor o igual que cero. Lo mismo para el turno y curso. La division debe ser mayor que cero.
			if(is_numeric($idAsistencia) && $idAsistencia>0 && is_numeric($idCicloLectivo) && $idCicloLectivo>=0 && is_numeric($idTurno) && $idTurno>=0 && is_numeric($idCurso) && $idCurso>=0 && is_numeric($idDivision) && $idDivision>0){
				//Cargo el modelo donde estan los datos de las asistencias registradas
				$this->load->model('m_asistencia');
				
				//Busco a la asistencia que hay que modificar
				$asistencia = $this->m_asistencia->get($idAsistencia);
				
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo para comprobar que existe
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Cargo el modelo donde estan los datos de los turnos
				$this->load->model('m_turno');
				
				//Busco al turno para comprobar que existe
				$turno = $this->m_turno->get($idTurno);
				
				//Cargo el modelo donde estan los datos de los cursos registrados
				$this->load->model('m_curso');
				
				//Busco al curso para comprobar que existe
				$curso = $this->m_curso->get($idCurso);
				
				//Cargo el modelo donde estan los datos de las divisiones registradas
				$this->load->model('m_division');
				
				//Busco a la division para comprobar que existe
				$division = $this->m_division->get($idDivision);
				
				//Tercera comprobacion: Que la asistencia sea existente. Ademas que el ciclo lectivo pasado por la url sea existente o bien el id sea igual a cero. Lo mismo para el turno y curso. La division debe ser existente.
				if($asistencia->num_rows() == 1 && ($cicloLectivo->num_rows() == 1 || $idCicloLectivo==0) && ($turno->num_rows() == 1 || $idTurno==0) && ($curso->num_rows() == 1 || $idCurso==0) && $division->num_rows() == 1){
					//Le paso la asistencia a modificar a la vista
					$datos['asistenciaSel'] = $asistencia;
					
					//Le paso el ciclo lectivo, turno, curso y division que estaban seleccionados en la pantalla consultar
					$datos['idCicloLectivoSel'] = $idCicloLectivo;
					$datos['idTurnoSel'] = $idTurno;
					$datos['idCursoSel'] = $idCurso;
					$datos['idDivisionSel'] = $idDivision;
					
					//Busco a la asistencia siguiente de la que hay que modificar
					$idAsistenciaSig = $this->m_asistencia->getContiguo($idAsistencia,1, $idDivision);
					
					//Le paso la asistencia siguiente de la que hay que modificar a la vista
					$datos['idAsistenciaSig'] = $idAsistenciaSig;
					
					//Busco a la asistencia anterior de la que hay que modificar
					$idAsistenciaAnt = $this->m_asistencia->getContiguo($idAsistencia,-1, $idDivision);
					
					//Le paso la asistencia anterior del que hay que modificar a la vista
					$datos['idAsistenciaAnt'] = $idAsistenciaAnt;
					
					//Cargo el modelo donde estan los datos de los tipos de asistencia registrados para pedirle un listado con todos ellos
					$this->load->model('m_tipo_asistencia');
					
					//Busco todos los tipos de asistencias y no solo los activos.
					$listadoTiposAsistencias = $this->m_tipo_asistencia->buscar();
					
					//Le paso el listado de todos los tipos de asistencias a la vista para que los muestre en un combo
					$datos['tiposAsistencias'] = $listadoTiposAsistencias;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo la vista donde se muestra el formulario para modificar una asistencia y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_asistencias_modificar',$datos, true);
					
					//Cargo la vista principal con los datos de la vista para modificar una asistencia
					$this->load->view('v_sistema', $datosPrincipal);
				} else {
					//El registro no existe.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para modificar un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
	
	//Este metodo no se puede llamar con ajax
	//Este metodo realmente modifica los datos de una toma de asistencia
	function modificar($idAsistencia=null){
	    //Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){	   
			//Segunda comprobacion: Que se haya pasado por post la division, fecha, tipo asistencia de la asistencia a modificar. 
			//Ademas que se haya pasado por la url el id de la asistencia a modificar
			if(is_numeric($idAsistencia) && $idAsistencia>0 && is_numeric($this->input->post('division',true)) && $this->input->post('division',true)>0 && $this->input->post('fecha',true) != "" && is_numeric($this->input->post('tipoAsistencia',true)) && $this->input->post('tipoAsistencia',true)>0){		
				//Cargo el modelo donde estan los datos de las asistencias
				$this->load->model('m_asistencia');
				
				//Busco a la asistencia que hay que modificar
				$asistencia = $this->m_asistencia->get($idAsistencia);
				
				//Cargo el modelo donde estan los datos de las divisiones
				$this->load->model('m_division');
				
				//Busco a la division para comprobar que realmente exista
				$division = $this->m_division->get($this->input->post('division',true));
				
				//Cargo el modelo donde estan los datos de los tipos de asistencia
				$this->load->model('m_tipo_asistencia');
				
				//Busco al tipo de asistencia para comprobar que realmente exista
				$tipoAsistencia = $this->m_tipo_asistencia->get($this->input->post('tipoAsistencia',true));
				
				//Tercera comprobacion: Que la asistencia, division y tipo de asistencia pasado por la url sea existente
				if($asistencia->num_rows() == 1 && $division->num_rows() == 1 && $tipoAsistencia->num_rows() == 1){
					//Resultado 0 quiere decir que nada se ha modificado
					$resultado = 0;
					
					//Formato fecha ARGENTINA
					$fecha1=$this->input->post('fecha',true);
					//Formato fecha EEUU
					if($fecha1!="")$fecha2=date("Y-m-d",strtotime($fecha1));
					else $fecha2=null;
					
					//Modificamos la asistencia
					$resultado = $this->m_asistencia->modificar($idAsistencia, $this->input->post('tipoAsistencia',true),$fecha2, $this->input->post('descripcion',true));
					
					if($resultado >= 1){
						echo("<script> alert('La toma de asistencia de la fecha: ".$this->input->post('fecha',true)." se ha modificado correctamente.');</script>");
					}else{
						echo("<script> alert('La toma de asistencia de la fecha: ".$this->input->post('fecha',true)." no se ha modificado. Ha habido un error o los datos permanecieron iguales.');</script>");
					}
				} else {
					//El registro no existe.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para modificar un registro.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();			
		}
	}
	
	//Este metodo no se puede llamar con ajax
	//Muestra un listado con todos los detalles de asistencia de un alumno en particular
	//Filtros:
	//Los tres primeros filtros sirven para seleccionar mas facilmente al alumno del que deseamos ver el detalle
	function informar($idCicloLectivo=null, $idCurso=null, $idDivision=null, $idAlumno=null){
		//Primera comprobacion: Que el usuario tenga iniciada la sesion y que tenga permiso para realizar esta accion.
		if($this->session->userdata('sesionIniciada') == 'Si' && ($this->session->userdata('permisoDirector') == '1' || $this->session->userdata('permisoVicedirector') == '1' || $this->session->userdata('permisoSecretario') == '1')){
			//Segunda comprobacion: Que idCicloLectivo pasado sea numerico y mayor o igual que cero. Lo mismo para el curso, la division y el alumno
			if(is_numeric($idCicloLectivo) && $idCicloLectivo>=0 && is_numeric($idCurso) && $idCurso>=0 && is_numeric($idDivision) && $idDivision>=0 && is_numeric($idAlumno) && $idAlumno>=0){
				//Cargo el modelo donde estan los datos de los ciclos lectivos
				$this->load->model('m_ciclo_lectivo');
				
				//Busco al ciclo lectivo para comprobar que existe
				$cicloLectivo = $this->m_ciclo_lectivo->get($idCicloLectivo);
				
				//Cargo el modelo donde estan los datos de los cursos
				$this->load->model('m_curso');
				
				//Busco al curso para comprobar que existe
				$curso = $this->m_curso->get($idCurso);
				
				//Cargo el modelo donde estan los datos de las divisiones
				$this->load->model('m_division');
				
				//Busco a la division para comprobar que existe
				$division = $this->m_division->get($idDivision);
				
				//Cargo el modelo donde estan los datos de los alumnos por divisiones
				$this->load->model('m_alumnoxdivision');
				
				//Busco al alumno para comprobar que existe y que esta asignado en este ciclo
				$alumno = $this->m_alumnoxdivision->get($idCicloLectivo, $idAlumno);
				
				//Tercera comprobacion: Que el ciclo lectivo pasado por la url sea existente o bien el id sea igual a cero. Lo mismo para el curso, division y el alumno
				if(($cicloLectivo->num_rows() == 1 || $idCicloLectivo==0) && ($curso->num_rows() == 1 || $idCurso==0) && ($division->num_rows() == 1 || $idDivision==0) && ($alumno->num_rows() == 1 || $idAlumno==0) ){
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los ciclos lectivos
					$listadoCiclosLectivos = $this->m_ciclo_lectivo->buscar();
					
					//Le paso el listado de todos los ciclos lectivos a la vista para que los muestre en un combo de filtrado
					$datos['ciclosLectivos'] = $listadoCiclosLectivos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Si el ciclo lectivo pasado por la url es igual a cero entonces hay que seleccionar el ciclo vigente, en caso contrario el que haya sido pasado
					if($idCicloLectivo==0){
						//Busco el ciclo lectivo vigente
						$cicloLectivoVigente = $this->m_ciclo_lectivo->getVigente();
						
						if($cicloLectivoVigente->num_rows() == 1){
							//Le paso a la vista el id del ciclo lectivo vigente
							$datos['idCicloLectivoSel'] = $cicloLectivoVigente->row()->idCicloLectivo;
						}else{
							//No hay ciclo lectivo seleccionado ni vigente
							$datos['idCicloLectivoSel'] = 0;
						}
					}else{
						//Le paso a la vista el id del ciclo lectivo pasado por la url
						$datos['idCicloLectivoSel'] = $idCicloLectivo;
					}					
					
					//Le paso a la vista el id del curso
					$datos['idCursoSel'] = $idCurso;
					
					//Le paso a la vista el id de la division
					$datos['idDivisionSel'] = $idDivision;
					
					//Le paso a la vista el id del alumno
					$datos['idAlumnoSel'] = $idAlumno;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Restricciones a los cursos, divisiones y alumnos
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					$restriccion1 = "";
					$restriccion2 = "";
					$restriccion3 = "";
					$restriccion4 = "";
					if($idCicloLectivo==0){
						//Busco el ciclo lectivo vigente
						$cicloLectivoVigente = $this->m_ciclo_lectivo->getVigente();
						
						if($cicloLectivoVigente->num_rows() == 1){
							$restriccion1 = " AND curso.idCicloLectivo=".$cicloLectivoVigente->row()->idCicloLectivo;
						}else{
							$restriccion1 = " AND curso.idCicloLectivo=0";
						}
					}else{
						$restriccion1 = " AND curso.idCicloLectivo=".$idCicloLectivo;					
					}
					
					$restriccion2 = " AND curso.idCurso=".$idCurso;
					$restriccion3 = " AND division.idDivision=".$idDivision;
					$restriccion4 = " AND alumno.idAlumno=".$idAlumno;
					
					//Le paso a la vista las restricciones
					$datos['restricciones'] = $restriccion1.$restriccion2.$restriccion3.$restriccion4;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los cursos registrados para pedirle un listado con todos ellos
					$this->load->model('m_curso');
					
					//Busco todos los cursos activos segun las restricciones
					$listadoCursos = $this->m_curso->buscarActivos($restriccion1);
					
					//Le paso el listado de todos los cursos a la vista para que los muestre en un combo de filtrado
					$datos['cursos'] = $listadoCursos;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de las divisiones registradas para pedirle un listado con todas ellas
					$this->load->model('m_division');
					
					//Busco todas las divisiones activas segun las restricciones
					$listadoDivisiones = $this->m_division->buscarActivos($restriccion1 . $restriccion2);
					
					//Le paso el listado de todas las divisiones a la vista para que los muestre en un combo de filtrado
					$datos['divisiones'] = $listadoDivisiones;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todos los alumnos de la division en cuestion segun las restricciones correspondientes
					$listadoAlumnos = $this->m_alumnoxdivision->buscarActivos($restriccion1 . $restriccion2 . $restriccion3);
					
					//Le paso el listado de todos los alumnos a la vista para que las muestre en el combo
					$datos['alumnos'] = $listadoAlumnos;
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					
					//Cargo el modelo donde estan los datos de los detalles de asistencias tomadas registradas para pedirle un listado con todas ellas segun las restricciones
					$this->load->model('m_detalle_asistencia');
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Busco todas las asistencias segun las restricciones correspondientes
					$listadoAsistencias = $this->m_detalle_asistencia->buscarActivos($restriccion1 . $restriccion2 . $restriccion3 . $restriccion4);
					
					//Le paso el listado de todas las asistencias a la vista para que las muestre en una tabla
					$datos['asistencias'] = $listadoAsistencias;
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////	
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo el modelo donde estan los datos de los tipos de inasistencias
					$this->load->model('m_tipo_inasistencia');
					
					//Busco todos los tipos de inasistencias activos
					$listadoTiposInasistencias = $this->m_tipo_inasistencia->buscarActivos();
					
					//Le paso el listado de todos los tipos de inasistencias a la vista para muestre la cantidad de cada uno
					$datos['tiposInasistencias'] = $listadoTiposInasistencias;
					
					////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
					//Cargo la vista donde se muestra la tabla de asistencias y la guardo en una variable para pasarsela a la vista principal
					$datosPrincipal['vista'] = $this->load->view('v_asistencias_informar', $datos, true);
					
					//Cargo la vista principal con los datos de la vista consultar informe
					$this->load->view('v_sistema', $datosPrincipal);
				} else {
					//El o los registros no existen.
					//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
					$this->session->sess_destroy();
					//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
					redirect(site_url("inicio"));
				}
			} else {
				//Los parametros pasados no son validos para consultar los registros.
				//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
				$this->session->sess_destroy();
				//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
				redirect(site_url("inicio"));
			}
		} else {
			//El usuario no tiene permiso para realizar esta accion.
			//Destruimos la sesion ya que si llego hasta aca lo hizo mediante alguna tecnica no apropiada y no utilizando la interfaz del sistema.
			$this->session->sess_destroy();
			//Lo redirigimos al login ya que como no se llamo con ajax se puede redirigir.
			redirect(site_url("inicio"));
		}
	}
}